Many industries rely on logging application events to gather data about the operation of the application, how the application reacts to various environments, and how users interact with the application. Often such logging isn't built into an application itself, but instead uses separate interfaces to integrate analysis tools into the application. This integration has typically required programmers to setup connections between the application and one or more analysis tools.
If an analysis tool changes, if it is desired that additional analysis tools be connected to the application, if a configuration of an analysis tool needs to be modified, or if there is another reason to change the way an application logging is performed, the application itself may need to be modified. This requires a skilled programmer to modify the application code. Furthermore, where the application is distributed to other users, this requires time and consumes network resources for the updated application to be distributed.
For example, in a software development company that produces a “codeMe!” mobile application, the codeMe! application can initially be distributed without any event logging functionality. At some point, the head of licensing may determine that, to effectively partner with other companies, she needs users statistics for codeMe! An engineering team is assembled that adds a logging configuration for Google Analytics® to codeMe! The updated version of codeMe! is released to the Android® and Apple® app stores, and as users slowly get the new version, logging data starts to come in. Shortly thereafter, a project manager determines that to maximize an upcoming project, Adjust® analytics would be really helpful. Unfortunately, adding this additional analytics service would require too much engineering resources and, because the entire updating process would have to occur again, sufficient logging results would not be available in time to advance the project, so no new analytics are added and a less effective product is produced.
The techniques introduced here may be better understood by referring to the following Detailed Description in conjunction with the accompanying drawings, in which like reference numerals indicate identical or functionally similar elements.